As a regulatory requirement in virtually all jurisdictions that allow gaming, it is necessary to have a technique to authenticate that the software installed in a gaming machine is tested and approved. In the past, gaming manufacturers have generally used EPROM-based hardware platforms to store program code. As a result, a number of software authentication techniques have been accepted as standards throughout the gaming industry. Depending upon the preferences of the local regulatory agency, these techniques generally include either a Kobetron signature or a hash function based on the data stored in the EPROM device.
Authentication of software programs basically occurs using two different methods in the field, again determined by the local regulatory agency. In one method, each EPROM is authenticated by a gaming agent prior to being installed in a gaming machine that is to be brought up for play. The EPROMs may be shipped directly to the gaming agency for authentication prior to the install date of the machine, or may be authenticated on the casino floor as the software is being installed in the machine. In another method, authentication is conducted on a spot-check basis wherein a gaming agent periodically visits a casino and picks machines for the removal of software components for authentication.
Jurisdictional requirements require that storage media containing code or data be authenticated at power-up, continuously or at a periodic rate, or upon occurrence of predetermined events, such as the opening any doors or panels of the gaming device that allows access to internal circuitry. The storage media may be comprised of erasable programmable read-only memory devices (EPROMs), electrically erasable programmable read-only memory devices (EEPROMs), PROMs, CompactFlash storage cards, hard disk drives, CD drives, or substantially any non-volatile memory and in some cases volatile memory (e.g., NVRAM, specialty mask semiconductors, battery backed RAM, SRAM, DRAM, etc.). Storage media comprises a memory device and the data stored thereon. Authentication of storage media is controlled by the gaming device's central processing unit (CPU). However, authentication by the CPU may take more than several minutes due to increasing complexity of the gaming device's software and thus the storage size of the media.
For example, the authenticity of numerous storage devices associated with the CPU may need to be determined every so often while a gaming machine is running. In some cases, gaming authorities require that a gaming program be authenticated about every ten minutes while the gaming machine is running. To determine the authenticity of a memory device's contents the CPU must read the memory device and perform various calculations and comparisons to determine if the memory device's contents are authentic. Reading many memory devices or large memory devices can use significant CPU time and therefore may negatively affect the responsiveness of the gaming program that a user interacts with. What is needed is a technique for authenticating memory devices associated with a gaming machine that does not affect the gaming program that the user interacts with.